class Solution {
 public:
  TreeNode* trimBST(TreeNode* root, int low, int high) {
    if (root == nullptr) return nullptr;
    if (root->val < low) {
      TreeNode* right =
          trimBST(root->right, low, high);  // 寻找符合区间[low, high]的节点
      return right;
    }
    if (root->val > high) {
      TreeNode* left =
          trimBST(root->left, low, high);  // 寻找符合区间[low, high]的节点
      return left;
    }
    root->left =
        trimBST(root->left, low, high);  // root->left接入符合条件的左孩子
    root->right =
        trimBST(root->right, low, high);  // root->right接入符合条件的右孩子
    return root;
  }
};
// TODO:手写，提交